package com.aiti.lulian.service;

import com.aiti.base.core.base.service.BaseService;
import com.aiti.base.core.utils.message.Message;
import com.aiti.lulian.dto.EnterpriseDto;
import com.aiti.lulian.dto.EnterpriseSelectDto;
import com.aiti.lulian.dto.LuLianEnterpriseOperationDto;
import com.aiti.lulian.entity.*;
import com.aiti.lulian.vo.EnterpriseAdminUserVo;
import com.aiti.lulian.vo.LuLianEnterpriseOperationVo;
import com.aiti.lulian.vo.LuLianEnterpriseVo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;


/**
 * @Author ZhouS
 * @CreateDate 2022-05-25
 * @Description:
 */
public interface ILuLianEnterpriseService extends BaseService<LuLianEnterprise> {



    public List<LuLianEnterprisePlantImg> getPlantImg(String enterpriseId);


    /**
     * 根据当前登录用户ID查询
     *
     * @param userId 用户ID
     * @return com.aiti.lulian.entity.LuLianEnterprise
     * @date 2024/6/5 0005 15:26
     * @author diaozhende
     */
    LuLianEnterpriseHistory queryByCurrentUser(String userId);


    Page<LuLianEnterprise> queryPage(EnterpriseSelectDto enterpriseSelectDto);

    LuLianEnterprise findByBaseId(String enterpriseId);

    List<LuLianCgsOrder> findActivityOrderByBaseId(String enterpriseId);

    Message saveEnterpriseUser(LuLianEnterpriseUser luLianEnterpriseUser);

    Map getEnterpriseUser(String userId);

    Message delEnterpriseUserByUserId(String userId, String enterpriseId);

    Message updateEnterpriseUser(LuLianEnterpriseUser luLianEnterpriseUser);

    /**
     * 查询企业Logo地址
     * @param enterpriseId
     * @return
     */
    Map<String,String> selectEnterpriseLogo(String enterpriseId);

    Message selectEnterpriseInfoByIds(List<String> enterpriseIds);

    Message enterpriseVersion(EnterpriseDto dto);

    List<LuLianEnterprise> selectEnterpriseInfoByName(String enterpriseName);

    String selectUserBindEnterpriseName(String userId);

    List<LuLianEnterpriseOperationVo> getEnterpriseList(LuLianEnterpriseOperationDto luLianEnterpriseOperationDto, Page<LuLianEnterprise> page);

    public void exportExcel(LuLianEnterpriseOperationDto dto, String userId, HttpServletResponse response);

    public List<EnterpriseAdminUserVo> getEnterpriseAdminUser(String enterpriseId);

    LuLianEnterpriseVo getEnterpriseInfoById(String enterpriseId);
}